/**
 * JsonUtil 类用于处理 JSON 字符串，提供格式化功能以增强可读性。
 * 不一定要使用
 */
public class JsonUtil {
    /**
     * 格式化 JSON 字符串，使其更易阅读。
     *
     * @param jsonStr 待格式化的原始 JSON 字符串。
     * @return 格式化后的 JSON 字符串，带有适当的缩进和换行。
     */
    public static String formatJson(String jsonStr) {
        StringBuilder sb = new StringBuilder();
        char lastChar = '\0';
        int depth = 0;
        boolean inString = false;
        for (char c : jsonStr.toCharArray()) {
            if (c == '\"') {
                inString = !inString;
            }
            if (!inString && c == '}') {
                depth--;
                addIndent(sb, depth);
            }
            sb.append(c);
            if (!inString && c == '{' || c == '[') {
                depth++;
                sb.append('\n');
                addIndent(sb, depth);
            }
            if (!inString && c == ',' && lastChar != '\\') {
                sb.append('\n');
                addIndent(sb, depth);
            }
            lastChar = c;
        }
        return sb.toString();
    }
    /**
     * 向 StringBuilder 中添加指定数量的空格作为缩进。
     *
     * @param sb StringBuilder 对象，用于构建格式化后的 JSON 字符串。
     * @param depth 当前的缩进深度，每个单位深度对应两个空格。
     */
    private static void addIndent(StringBuilder sb, int depth) {
        for (int i = 0; i < depth * 2; i++) {
            sb.append(' ');
        }
    }
}
